﻿using System;
using System.ServiceModel;

namespace InterfacesPhoneCommands
{
    [ServiceContract(SessionMode = SessionMode.Required)]
    public interface IPhoneApi
    {

        [OperationContract]
        ResponseConnectableDevice Device();

        [OperationContract]
        ResponseVoid IsConnected();

        [OperationContract]
        ResponseSystemInfo SystemInfo();

        [OperationContract]
        ResponseVoid ConnectPhone(string guidDevice);

        [OperationContract]
        ResponseVoid Disconnect();

        [OperationContract]
        ResponseVoid Launch(string guidapp);

        [OperationContract]
        ResponseVoid TerminateRunningInstances(string guidapp);

        [OperationContract]
        ResponseVoid Uninstall(string guidapp);

        [OperationContract]
        ResponseVoid InstallApplication(Guid guid, Guid instance, string genre, string iconpath, string xapPackege);

        [OperationContract]
        ResponseVoid IsApplicationInstalled(Guid guidapp);

        [OperationContract]
        ResponseVoid UpdateApplication(string guidapp, string genre, string iconfile, string filename);

        [OperationContract]
        ResponseArrayString ApplicationsInstalled();

        [OperationContract]
        ResponseRemoteFile GetIsoFiles(string guidapp, string pathRoot);

        [OperationContract]
        ResponseVoid CopySendFile(string guidapp, RemoteFile isofileinfo, string newfile, bool overwrite);

        [OperationContract]
        ResponseVoid CopyReceiveFile(string guidapp, RemoteFile isofileinfo, string desktopTarget);

        [OperationContract]
        ResponseVoid RenameFile(string guidapp, RemoteFile isofileinfo, string newfile);

        [OperationContract]
        ResponseVoid DeleteFile(string guidapp, RemoteFile isofileinfo);

        [OperationContract]
        ResponseVoid DeleteDir(string guidapp, RemoteFile isofileinfo);

        [OperationContract]
        ResponseVoid DirectoryExists(string guidapp, string folder);

        [OperationContract]
        ResponseVoid FileExists(string guidapp, string file);

        [OperationContract]
        ResponseVoid CreateDir(string guidapp, RemoteFile isofileinfo, string newfolder);
    }
}